<?php
/**
 * <https://y.st./>
 * Copyright © 2017 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'title' => '<code>urn:isbn:9780770437725</code>',
	'body' => <<<END
<section id="to-do">
	<h2>To-do list</h2>
	<ul>
		<li>
			Acquire stuff for my new home:
			<ul>
				<li>
					A bed
				</li>
				<li>
					A dustpan
				</li>
				<li>
					A carpet broom
				</li>
			</ul>
		</li>
		<li>
			Inform people that I&apos;ve moved
			<ul>
				<li>
					Relevant online accounts
				</li>
			</ul>
		</li>
		<li>
			Finish stabilizing <a href="https://git.volatile.ch./y.st./include.d/releases">include.d</a> and put out another release (low priority)
		</li>
		<li>
			Clean up my apartment
			<ul>
				<li>
					Clean up my bedroom
					<ul>
						<li>
							Finish file-sorting
						</li>
						<li>
							Finish sock-sorting
						</li>
						<li>
							<del>Clear off the shelf in my closet</del>
						</li>
						<li>
							Finish hanging my work clothing
						</li>
					</ul>
				</li>
				<li>
					Clean up the study alcove and living room
				</li>
				<li>
					Clean up the kitchen and entryway
				</li>
			</ul>
		</li>
		<li>
			Finish the library&apos;s &quot;bingo&quot; sheet (these tasks were typed verbatim, and include any mistakes and quirks present on the sheet handed to me)
			<ul>
				<li>
					Attend any library program
				</li>
				<li>
					Read a book you found using Novelist. A librarian can help!
				</li>
				<li>
					Read a nonfiction title
				</li>
				<li>
					Read a poem by Oregon Poet Laureate Elizabeth Woody
				</li>
				<li>
					Read a book checked out from the Springfield Library (print, ebook, or audio)
				</li>
				<li>
					Visit somewhere new in downtown Springfield
				</li>
				<li>
					Read a graphic novel
				</li>
				<li>
					Read an author you have never read before
				</li>
				<li>
					Get outside: read in a Willamalane park for one hour willamalane.org
				</li>
				<li>
					Browse the Gale Virtual Reference Library. A librarian can help!
				</li>
				<li>
					Build, draw, or make something based on a book that you read
				</li>
				<li>
					Read a science fiction title
				</li>
				<li>
					Share a book recommendation
				</li>
				<li>
					Read an award-winning book
				</li>
				<li>
					Read a book from a library display
				</li>
				<li>
					Suggest a library program you would attend
				</li>
				<li>
					Read a new book (published in 2016 or 2017)
				</li>
				<li>
					Read a young adult or children&apos;s book
				</li>
				<li>
					Build community: do something social. Try one of our book groups or go to Springfilm!
				</li>
				<li>
					Read something funny and have a good laugh :)
				</li>
				<li>
					Look at the art in the City Hall Gallery. There&apos;s a new show every month!
				</li>
				<li>
					Volunteer for a couple hours at a community organization of your choice.
				</li>
				<li>
					Download one of the library&apos;s free apps or search in a database. A librarian can help!
				</li>
				<li>
					Read a book that takes place in another country
				</li>
				<li>
					Recommend our BINGO challenge to friends or family
				</li>
			</ul>
		</li>
	</ul>
</section>
<section id="general">
	<h2>General news</h2>
	<p>
		I considered keeping my First Tech account open and just dealing with them long-distance, but their website is always a pain to use.
		Most of the time, the page won&apos;t even load.
		How am I supposed to manage my money from a distance if I can&apos;t even use online banking?
		I decided to try an experiment.
		I tried loading the page in a sterile browsing environment, both with and without $a[Tor].
		As I suspected, they&apos;re maliciously discriminating against $a[Tor] users.
		They don&apos;t deserve my continued membership!
		If they&apos;re going to move out of town and leave $a[Tor]-users high and dry, I&apos;ll close my account after all.
		I&apos;ll mention their discrimination on their website and their moving out of town as my reasons for closing the account in hopes of at least getting some awareness internally about their broken website.
		Maybe someone will actually look into and fix it, but likely, they won&apos;t.
		Even on the off chance they do look into it, the discrimination will be mistaken as some sort of &quot;security&quot; feature.
		It&apos;s not in any way for security though, when you take into account the fact that you have to log in with member information anyway.
		They know <strong>*exactly*</strong> who is using their online banking system; they&apos;re <strong>*not*</strong> combating anonymity with this ridiculous refusal to send so much as an error page to $a[Tor] users.
	</p>
	<p>
		While I was testing, I also tested my credit card account with Oregon Community Credit union.
		It seems that they too maliciously descriminate, but they only do it with the credit card accounts, not the checking and savings accounts.
		Odd.
		I might cancel my credit card through them too, though because I can still pay my bill in person, I might not.
		Still, I can access my Discover and Chase (Visa) cards over $a[Tor], so maybe I&apos;ll just cancel my Oregon Community (another Visa) card on principle.
		Besides, I don&apos;t need two Visa cards.
	</p>
	<p>
		Chase wrote back finally, and said they sent me the wrong paperwork last time, so they&apos;ll send the right paperwork this time.
		I was highly sceptical, but I figured I&apos;d see what they send.
		This meant another ten-business-day-wait before I could even see what&apos;s going on though.
		Or so I thought.
		When I got off work, I found that they&apos;d sent the same paperwork as last time.
		They must&apos;ve sent it before, even though they weren&apos;t answering my questions just yet (it seems they were on message overload, so I can&apos;t blame them).
		When I have time, I&apos;ll need to pester them again.
		Or maybe I&apos;ll do it while taking a small break from coursework.
	</p>
	<p>
		I managed to gouge my left hand pretty badly on a sharp corner of the front counter.
		I use my left hand more than my right, so having it injured is a pain, but I&apos;m also mostly ambidextrous, so it won&apos;t be as much of a pain as it would be for most people to have their main hand tender.
	</p>
	<p>
		It seems I was right about that underwear.
		I was wearing it wrong.
		That anti-chafe underwear works much better if it&apos;s not fit snugly against one&apos;s groin.
		This seems counter-intuitive to me, as normally, my legs are bare and my groin is snug.
		With these though, the groin has to be loose to the point where it doesn&apos;t even touch the bottom of the groin, while my legs are wrapped tightly.
		Whatever though, as long as it prevents the chafing I deal with from working around flame-powered ovens in the summer.
		I only have the two pairs though, which are now dirty, so I&apos;ll need to pick up another pair of pairs tonight before I go to bed so I can continue avoiding chafing tomorrow at work.
	</p>
	<p>
		My <a href="/a/canary.txt">canary</a> still sings the tune of freedom and transparency.
	</p>
</section>
<section id="library">
	<h2>Library task list</h2>
	<p>
		I decided to look through the task list and find those tasks that require reading and are the least flexible (as far as copyright status) in what they allow.
		That would be my starting point.
	</p>
	<ul>
		<li>
			Read a poem by Oregon Poet Laureate Elizabeth Woody
		</li>
		<li>
			Read an award-winning book
		</li>
		<li>
			Read a book from a library display
		</li>
		<li>
			Read a new book (published in 2016 or 2017)
		</li>
	</ul>
	<p>
		The first task seemed too easy.
		I could look up such a poem when I had a moment to spare, so it wouldn&apos;t take preparation.
		The award-winning book seemed feasible, it would just require some research.
		It turned out to be even easier to find suitably works than I thought, and several works on <a href="http://onlinebooks.library.upenn.edu./prize.html">this list</a> are perfect; I just need to compare against the <a href="http://copyright.cornell.edu./resources/publicdomain.cfm">copyright expiration year master list</a> to be sure to choose a recommendable book.
		The final task requires a new book.
		That means either abandoning my efforts to perform the task using a free book or finding one under a free license.
		I couldn&apos;t find the info I needed to make that happen, so I set it aside for the time being.
		It still may be possible!
		That left the least-flexible task of the four: reading a book from a library display.
		The library chooses what to display and no amount of research on my part can bypass their choices.
		With that in mind, I headed to the library to find the oldest book they had displayed, whatever that might be, and check it out to read at work on my breaks.
	</p>
	<p>
		... that was the plan, anyway.
		Once I got there, I found there were too many displays set up to check the copyright years on the inner cover.
		If only that information was displayed prominently on the cover ...
		Time is short, and in all honesty, I probably shouldn&apos;t be engaging in this challenge at all.
		I can&apos;t be all work and no play though.
		I looked at the copyright years of what appeared to be the oldest of the displayed works, but the appearance of age is only cover-deep.
		New copies obviously get printed all the time, so even the newest-looking books might&apos;ve been out of copyright.
		The few books I checked weren&apos;t old enough though, and I quickly gave up, feeling my efforts were going to be futile.
		My attention was soon drawn to a display about pride week, or pride month, or something.
		If I was going to read a nonfree work, I might as well choose one that promises to be interesting.
		I chose <a href="urn:isbn:9780770437725">Raising My Rainbow</a>, a book about raising a &quot;gender-creative&quot; child.
		I doubt it was creativity as much as not feeling a need to be needlessly boxed in, as creativity suggests an intentionally-different view, but it should be a good read as I continue dropping of the gender shackles I was raised to identify with.
	</p>
	<p>
		I picked up a &quot;bingo&quot; board for each my mother and Vanessa while I was there.
		I&apos;ll recommend the program to them later to check that off my list.
		I doubt my mother will participate.
		Vanessa, if left to their own devices, very well may.
		I&apos;m not sure the level or direction our mother&apos;s influence will affect the situation though.
		I also picked up a new voter-registration form at the post office.
		While I did my light file-sorting for the day, I came across my old voter-registration cards and remembered that I need to get my registration updated.
		As a bonus, once I have the new voter-registration card in hand, I can shred the old ones.
	</p>
	<p>
		That book I borrowed from the library today has already proven to be a good read, aside from the copyright status.
		It leaves me questioning things though.
		The child described in the book was raised masculine, as they were male, but as early as two years old, they showed signs of being feminine.
		By age five, it looks like they were highly feminine, though their parents don&apos;t think they were totally and completely feminine; they were more of a mix.
		I feel my only ties to gender were based on how I was raised.
		I assumed this was the case for gender in all cases, but it seems, if the book is to be believed, I was projecting.
		That child didn&apos;t have time to end up under the influence of some feminine influence.
		They legitimately didn&apos;t like their masculine toys, and the parents thought they simply didn&apos;t like toys at all.
		But then they found a feminine toy and fell in love with it.
		The parents were worried, but it lead to a chain of events in which the parents figured out better how to raise their child.
		That child shouldn&apos;t be raised masculine, because they weren&apos;t.
		Me ... I&apos;ve never been interested in the things associated with my sex&apos;s assumed gender.
		At the same time, I&apos;ve never been interested in the things associated with the opposite sex&apos;s assumed gender either.
		I took on traits of the gender I was assumed to be because of how I was raised, I&apos;m almost certain, but maybe it was because I was an unusually-blank slate.
		I mean ... When I learned about what sex was, I knew right away it wasn&apos;t something I wanted any part of.
		It&apos;s gross, and I have no need for it.
		However, I assumed everyone else sought sex because it&apos;s what they thought was expected of them.
		I was completely wrong though!
		I feel like this could very well be the same way.
		But now, I wonder: is my lack of gender associated with my lack of sexuality?
		I have no idea how closely the two are tied together.
		I kind of wonder if gender evolved to aid in attracting a mate.
		If that&apos;s the case, my lack of instinct to even <strong>*want*</strong> to attract a mate could very well be tied into this somehow.
	</p>
</section>
<section id="university">
	<h2>University life</h2>
	<p>
		I wrote up my initial discussion post for the week.
		We were asked to discus when recursion should and should not be used.
		I haven&apos;t completed the reading assignment yet, but I do have strong opinions on when to use recursion, so I got a head start.
		Later in the week, I&apos;ll see if the provided reading material change my mind at all or bring up new points.
	</p>
	<blockquote>
		<p>
			Recursion is a powerful tool that allows you to accomplish feats not otherwise possible.
			However, it can very easily be misused.
			In general, I&apos;d say that any time recursion feels wrong, you&apos;re doing something incorrectly.
			You either don&apos;t actually need recursion, or your implementation isn&apos;t what it should be.
			Trust your instincts; once you refine your recursive method, it&apos;ll feel a whole lot more natural and less forced.
			Additionally, any time you can think up a proper way to accomplish your task without recursion and that doesn&apos;t make stupid assumptions (for example, the assumption that depth won&apos;t go beyond a certain point when there&apos;s no actual reason it couldn&apos;t), recursion is the wrong tool for the job.
		</p>
		<p>
			The advantage of recursion is that it can go arbitrarily deep.
			You can write fairly-simple code that handles some sort of nested problem with little difficulty.
			It&apos;s easiest to see what problems recursion solves by looking at how you&apos;d deal with nested problems <strong>*without*</strong> recursion.
			There&apos;s a difference too between a nested problem and an array of problems.
			With an array of problems (not necessarily in the form of a Java array type), you know the depth of your array and every problem exists in the deepest part of the array.
			You could have an array of arrays (a {$a['2D']} array) or an array of arrays of arrays (a {$a['3D']} array) or so-on, but because the dept is consistent, it&apos;s in no way nested; you can just handle it with a finite and known number of nested loops (the loops may be nested, but the problem is not).
		</p>
		<p>
			On the other hand, lets look at the problem of listing files on a machine.
			Files can either be directories or non-directories, and if they&apos;re directories, they contain pointers to even more files, which again, can either be directories or non-directories.
			without recursion, you&apos;d need to code for each depth.
			This involves a lot of copy-and-paste work, and updating your code requires updating many identical copies of the code that deal with different depths.
			However, here&apos;s the worst part: the user will always be able to add files at a depth deeper than what you accounted for.
			<strong>*Your code will forever be incomplete in its capabilities.*</strong>
			With recursion added though, we remove all these useless copies of the same code.
			When it comes time to update your code, you update it in one and only one spot.
			The number of levels of depth also don&apos;t need to be known.
			You can put a depth cap on your algorithm if you need to, but it&apos;d only be artificial and would be a <strong>*deliberate feature*</strong>, not an unfixable bug.
		</p>
		<p>
			To reiterate, problems of arbitrary depth such as this one, even if that depth has a cap, are the only cases in which use of recursion is acceptable.
			Anything with a single, known depth should use a different, non-recursive tool.
			Use of recursion when unnecessary only adds needless complexity.
		</p>
	</blockquote>
</section>
END
);
